\section{NAME\label{NAME}\index{NAME}}


Bench::Test::View - Formatea tablas de datos

\section{SYNOPSIS\label{SYNOPSIS}\index{SYNOPSIS}}
\begin{verbatim}
   my $view = Bench::Test::View->new(
      format => 'html',
      verbose => 1,
   );
\end{verbatim}
\begin{verbatim}
   my $row = [1, 2, 33];
\end{verbatim}
\begin{verbatim}
   $view->add_row($row);
\end{verbatim}
\begin{verbatim}
   my $output = $view->process;
\end{verbatim}
\section{DESCRIPTION\label{DESCRIPTION}\index{DESCRIPTION}}


El objeto Bench::Test::View permite formatear una tabla de
datos cualesquiera en los siguientes formatos: HTML, XML, LaTex,
texto plano o cualquier formato que el usuario indique utilizando
Template Toolkit.

\subsection*{Example\label{Example}\index{Example}}


Supongamos una tabla de datos como la siguiente:

\begin{verbatim}
  $data = [ [1, 2, 3], [4, 66, 7], ['yes', 1000, 'OK'] ];
\end{verbatim}


El siguiente codigo introduce las filas una a una y devuelve
la salida formateada en los distintos formatos disponibles.

\begin{verbatim}
  my $view = Bench::Test::View->new;
  for my $row (@{$data}) {
     $view->add_row($row);
  }
\end{verbatim}
\begin{verbatim}
  my $output_HTML  = $view->process('html');
  my $output_XML   = $view->process('xml');
  my $output_LaTex = $view->process('latex');
  my $output_text  = $view->process('text');
  my $output_user  = $view->process('file:template.tt');
\end{verbatim}
\begin{verbatim}
  print $output_text;
\end{verbatim}


El anterior fragmento de codigo mostraria lo siguiente:

\begin{verbatim}
  1   2    3
  4   66   7
  yes 1000 OK
\end{verbatim}
\section{METHODS\label{METHODS}\index{METHODS}}
\subsection*{The constructor \texttt{new}\label{The_constructor_new}\index{The constructor new}}


El constructor acepta los siguientes parametros:

\begin{description}

\item[{-\textbf{format}}] \mbox{}

(Opcional) Formato en el que se desea la salida
formateada. Puede indicarse en el constructor o
mediante el metodo 'set\_format'.


\item[{-\textbf{verbose}}] \mbox{}

(Opcional) Por defecto esta activado. Imprime por
STDOUT las filas de datos que se van incluyendo.
Los elementos de las filas son mostrados sin formato,
solamente separados por un tabulador.

\end{description}
\subsection*{The \texttt{set\_format} method\label{The_set_format_method}\index{The set\ format method}}


El metodo \texttt{set\_format} recibe una cadena indicando
el formato que se desea utilizar para formatear
la salida con el metodo \textbf{process}.



Los formatos pueden ser 'html', 'xml', 'latex' y 'text'.
Mas adelante se detallan los formatos.

\subsection*{The \texttt{add\_row} method\label{The_add_row_method}\index{The add\ row method}}


El metodo \texttt{add\_row} recibe una referencia a array conteniendo
una nueva fila de datos y la guarda en orden para ser mostrada
posteriormente con el metodo \texttt{process}

\subsection*{The \texttt{process} method\label{The_process_method}\index{The process method}}


El metodo \texttt{process} devuelve la salida formateada con el formato
indicado en el atributo \texttt{FORMAT}. Puede recibir el formato como
parametro si este no esta definido o si se desea cambiar
en el instante de la llamada.

\section{Formatos\label{Formatos}\index{Formatos}}


Existen cuatro formatos cuyas 'Template Toolkits' permanecen
almacenadas en las clases correspondientes:

\begin{verbatim}
  'html'  en  Bench::Test::View::HTML;
  'xml'   en  Bench::Test::View::XML;
  'latex' en  Bench::Test::View::Latex;
  'text'  en  Bench::Test::View::Text;
\end{verbatim}


Ademas, se deja la posibilidad de que el usuario personalice
una plantilla y la utilice con la clase Bench::Test::View para
formatear sus datos. El parametro 'format' del constructor o
del metodo 'set\_format' ha de ser el siguiente:

\begin{verbatim}
  'file:plantilla.tt'
\end{verbatim}


En el archivo 'plantilla.tt' se encontrara la plantilla Template
Toolkit que formateara los datos. Se debe tener en cuenta lo
siguiente:

\begin{itemize}

\item 

Puede hacerse uso de la clausula [\% PERL \%]


\item 

Los datos se encuentran en la variable 'data' dentro
de la tabla de simblos de TT.

\end{itemize}


Vease un ejemplo de plantilla:

\begin{verbatim}
  <table>
  [% FOREACH row IN data -%]
   <tr>
      [% FOREACH item IN row -%]<td>$item</td>[%- END %]
   </tr>
  [% END -%]
\end{verbatim}
\section{SEE ALSO\label{SEE_ALSO}\index{SEE ALSO}}


Bench::Test, Bench::Test::HTML, Bench::Test::XML, Bench::Test::Latex, Bench::Test::Text

\section{AUTHOR\label{AUTHOR}\index{AUTHOR}}


Casiano Rodriguez-Leon
Juan Antonio Gomez Cabo



$<$casiano@ull.es$>$
$<$gomezcabo@yahoo.es$>$

\section{COPYRIGHT AND LICENSE\label{COPYRIGHT_AND_LICENSE}\index{COPYRIGHT AND LICENSE}}


Copyright (C) 2006 by Casiano Rodriguez Leon, Juan Antonio Gomez Cabo



This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available.

